<?php

namespace app\common\controller;

// 继承TP底层
use think\Controller;

/**
 * 前台公共控制器
 */
class Home extends Controller
{
    //不需要登录的方法
    protected $noNeedLogin = [];

    // 构造函数
    public function __construct()
    {
        // 父类继承
        parent::__construct();

        // 全局模型加载
        $this->BusinessModel = model('Business.Business');

        //  全局的身份变量
        $this->LoginAuth = null;

        // 获取当前访问的控制器方法
        $action = $this->request->action();

        // 判断 action 是否在 noNeedLogin 数组中如果在，不需要登录
        if (!in_array($action, $this->noNeedLogin) && !in_array('*', $this->noNeedLogin)) {
            // 自动去调用判断是否登录的方法
            $this->IsLogin();
        }
    }

    // 判断是否登录
    public function IsLogin()
    {
        // 获取cookie
        $LoginAuth = cookie('LoginAuth') ? cookie('LoginAuth') : [];
        $busid = isset($LoginAuth['id']) ? $LoginAuth['id'] : 0;
        $busmobi = isset($LoginAuth['mobile']) ? $LoginAuth['mobile'] : '';

        // id不存在 或者 手机号为空
        if (!$busid || empty($busmobi)) {
            // 伪造的cookie删除
            cookie('LoginAuth', null);
            $this->error('登录信息有误，请重新登录', url('/home/index/login'));
            exit;
        }

        // 根据id 和 手机号找出这个人
        $where = [
            'id' => $busid,
            'mobile' => $busmobi
        ];

        // 单条查询
        $LoginAuth = $this->BusinessModel->where($where)->find();

        if (!$LoginAuth) {
            // cookie伪造
            cookie('LoginAuth', null);
            $this->error('非法登录', url('/home/index/login'));
            exit;
        }

        // 赋值给模板
        $this->view->assign('LoginAuth', $LoginAuth);

        // 赋值一份给全局变量
        $this->LoginAuth = $LoginAuth;
    }
}
